package com.douma._2022_6_28;

import java.util.ArrayDeque;
import java.util.Scanner;

/**
 * 抖码算法，让算法学习变的简单有趣
 *
 * @作者 : 老汤
 */
public class 火星文计算 {
    // 先学习课程 B【刷题篇第 10 天：栈和队列】 中的第 1 小节到第 31 小节的内容，再来看这个题目
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String s = sc.nextLine();
        ArrayDeque<Integer> stack = new ArrayDeque<>();
        int i = 0;
        char preSign = ' ';

        while (i < s.length()) {
            int num = 0;
            while (i < s.length() && Character.isDigit(s.charAt(i))) {
                num = num * 10 + (s.charAt(i) - '0');
                i++;
            }

            if (preSign != '$') {
                stack.push(num);
            } else {
                // 如果遇到了 $，则先计算，将结果放入到栈中
                int tmp = stack.pop();
                // x$y = 3*x + y + 2
                stack.push(3 * tmp + num + 2);
            }

            if (i < s.length()) preSign = s.charAt(i);
            i++;
        }

        // 从栈底开始
        int res = stack.pollLast();
        while (!stack.isEmpty()) {
            // x#y = 2*x + 3*y + 4
            res = 2 * res + 3 * stack.pollLast() + 4;
        }

        System.out.println(res);

        sc.close();
    }
}
